package com.yesep.learn.design.common;

import java.util.*;

/**
 * 电脑配件接口
 */
public interface IComputerComponent {

    String getModel();

    void setModel(String model);

    double getConsumption();

    void setConsumption(double consumption);

    Map<String, Object> getParameters();

    void setParameters(Map<String, Object> parameters);

    default void setParameter(String key, Object parameter) {
        Map<String, Object> parameters = getParameters();
        if (parameters == null) {
            parameters = new HashMap<>();
            setParameters(parameters);
        }
        parameters.put(key, parameter);
    }

    default Object getParameters(String key) {
        Map<String, Object> parameters = getParameters();
        return (parameters == null) ? null : parameters.get(key);
    }

    void start();

    void stop();
}